var express = require('express');
var router = express.Router();
var path = require("path");

// 获取验证模块
var authorization = require(path.join(process.cwd(), "/modules/authorization"));
// 通过验证模块获取菜单服务模块
var epidemicService =authorization.getService("EpidemicService");

router.get("/",

    function(req,res,next){
        next()
    },

    function(req,res,next) {

        console.log(req.query);
        epidemicService.getReturnLists(req.query,function(err,result) {
            if(err) return res.sendResult(null,400,err);
            res.sendResult(result,200,"获取人员成功！");
        })(req,res,next);
    }
);
// router.get("/",
//
//     function(req,res,next){
//         next()
//     },
//
//     function(req,res,next) {
//
//         console.log(req.query);
//         epidemicService.getReturnLists(req.query,function(err,result) {
//             if(err) return res.sendResult(null,400,err);
//             res.sendResult(result,200,"获取人员成功！");
//         })(req,res,next);;
//     }
// );
//新增
//新增
router.put("/",
    function(req,res,next){
        if( !req.body['user_name']){
            return  res.sendResult(null,400,'姓名不能为空');
        }
        if( !req.body['id_card']){
            return  res.sendResult(null,400,'身份证号不能为空');
        }
        if( !req.body['tel']){
            return  res.sendResult(null,400,'电话号码不能为空');
        }
        if( !req.body['come']){
            return   res.sendResult(null,400,'返回前的地址不能为空');
        }
        if( !req.body['to']){
            return   res.sendResult(null,400,'返回后的地址不能为空');
        }
        if( !req.body['arrive_time']){
            return   res.sendResult(null,400,'到达时间不能为空');
        }
    next()
    },

    function(req,res,next) {
        epidemicService.addEpidemic(req.body,function(err,result) {

            console.log(req.body);
            if(err) return res.sendResult(null,400,err);
            res.sendResult(result,200,"获取人员成功！");
        })(req,res,next);
    }
);


// 通过id获取成员信息
router.get("/:id",
    // 验证参数
    function(req,res,next) {
        // 参数验证
        if(!req.params.id ) return res.sendResult(null,400,"请求信息出错");
        next();
    },
    // 处理业务逻辑
    function(req,res,next) {
        epidemicService.getMemberById(req.params.id
            ,
            function(err,result){
                if(err) return res.sendResult(null,400,err);
                res.sendResult(result,200,"获取成员信息成功");
            }
        )(req,res,next);
    }
);


//删除
router.delete("/:id",
    // 参数验证
    function (req, res, next) {
        if(!req.params.id) return res.sendResult(null,400,"成员ID不能为空");
        next();
    },
    // 处理业务逻辑
    function (req, res, next) {
        epidemicService.deleteByID(req.params.id, function (err, role) {
            if (err) return res.sendResult(null, 400, err);
            res.sendResult(role, 200, "删除成功");
        })(req,res,next);
    }
);

router.put("/:id/update",
    // 参数验证
    function (req, res, next) {
        if (!req.body.id_card) return res.sendResult(null, 400, "身份证号不能为空");
        if (!req.body.user_name) return res.sendResult(null, 400, "姓名不能为空");
        if (!req.body.tel) return res.sendResult(null, 400, "电话不能为空");
        if (!req.body.come) return res.sendResult(null, 400, "返回前的地址不能为空");
        if (!req.body.to) return res.sendResult(null, 400, "返回后的地址不能为空");
        if (!req.body.arrive_time) return res.sendResult(null, 400, "到达时间不能为空");
        next();
    },
    // 处理业务逻辑
    function (req, res, next) {

        epidemicService.updateMember( req.params.id,req.body, function (err, role) {
            if (err) return res.sendResult(null, 400, err);
            res.sendResult(role, 200, "更新成功");
        })(req,res,next);
    }
);
//导出文件
router.get("/:id/export",
    // 参数验证
    function (req, res, next) {
        next();
    },
    // 处理业务逻辑
    function (req, res, next) {
        epidemicService.listexport('1',function (err,res1){
            res.sendResult('测试', 200, "更新成功");
        })(req,res,next)
    }
);

module.exports = router;
